import request from "@/utils/request";

// 软件信息项
export interface SoftwareInfo {
    名称: string;
    版本: string;
    校验码: string;
    日期: string;
}

// CPU信息项
export interface CpuInfo {
    名称: string;
    版本: string;
    校验码: string;
    日期: string;
}

// 虚端子信息项
export interface VirtualTerminalInfo {
    名称: string;
    版本: string;
    校验码: string;
    日期: string;
}

// 装置详细信息项
export interface DeviceDetailInfo {
    装置型号: string;
    装置名称: string;
    软件版本: string;
    程序校验码: string;
    程序日期: string;
    ICD版本: string;
    ICD校验码: string;
    CID版本: string;
    CID校验码: string;
    CCD版本: string;
    CCD校验码: string;
}

// 装置基本信息项
export interface DeviceBasicInfo {
    装置名称: string;
    装置标识码: string;
}

// 管理单信息项
export interface ManagementInfo {
    管理单名称: string;
}

// 完整的设备信息响应类型
export type DeviceInfoResponse = [
    SoftwareInfo[], // 软件信息数组
    CpuInfo[], // CPU信息数组
    VirtualTerminalInfo[], // 虚端子信息数组
    DeviceDetailInfo[], // 装置详细信息数组
    DeviceBasicInfo[], // 装置基本信息数组
    ManagementInfo[], // 管理单信息数组
];

export const HMI_SWINFO_API = {
    getDeviceInfo: () => {
        return request<any, SoftwareInfo>({
            url: "/api/version/0",
            method: "get",
        });
    },
};

export const HMI_HWINFO_API = {
    getDeviceInfo: () => {
        return request<any, CpuInfo>({
            url: "/api/version/1",
            method: "get",
        });
    },
};



export const HMI_VTINFO_API = {
    getDeviceInfo: () => {
        return request<any, VirtualTerminalInfo>({
            url: "/api/version/2",
            method: "get",
        });
    },
};

export const HMI_MCINFO_API = {
    getDeviceInfo: () => {
        return request<any, DeviceDetailInfo>({
            url: "/api/version/1/3",
            method: "get",
        });
    },
};

export const  HMI_BASICINFO_API  = {
    getDeviceInfo: () => {
        return request<any, DeviceBasicInfo>({
            url: "/api/version/1/4",
            method: "get",
        });
    },
};

export const HMI_MGRINFO_API = {
    getDeviceInfo: () => {
        return request<any, ManagementInfo>({
            url: "/api/version/5",
            method: "get",
        });
    },
};